Recently, capacities of flash memories for code storages with random access capability during reading are increased, which leads to a demand for increased throughput during programming.
In conventional type flash memories for code storages (NOR type flash memories), programming time per one bit is about 10 μsec, programming current per one bit is about 100 μA at 5 Volts. When 8-32 bits are simultaneously programmed, a throughput of 8-32 bits/10 μsec=100 k-400 kbytes/sec is realized. The required programming current is about 800 μA-3.2 mA. The power source of about 5 Volts for supplying the programming current is stepped up from the external power source of 1.8 Volts on chip, which leads to a difficulty in supplying a large current and in improvement of the throughput by increasing a number of bits programmed simultaneously. Furthermore, power consumption during programming limits the improvement of the throughputs.
In the contrary, conventional type flash memories for data storages (NAND type flash memories), programming time per one bit is about 1 msec, programming current per one bit is less than 1 pA. When about 8 kbytes are simultaneously programmed, a throughput of 8 Mbytes/sec is realized. In order to program 8 k bytes simultaneously, the flash memories for data storages have 8 kbyts of data latches (column latches), enabling data inputs and simultaneous programming of 8 kbyts.
Even for the flash memories for data storage (NAND type flash memories), the programming throughputs are 8 Mbytes/sec, which is less than one tenth ( 1/10) of the programming throughputs of hard disk drives (HDD) of 100 Mbites/sec. The programming throughputs of the code storage flash memories (NOR type flash memories) are still one tenth ( 1/10) less than that of the flash memories for data storage. Therefore, the improvements in programming throughputs are important subject matter.
WO 2004-095585 shows a programming method applicable to code storage type flash memories (NOR type flash memories) with less programming current. When this method is used, since the programming current is small, a number of bits for simultaneous programming can be increased as equivalent to NAND flash memories, enabling the programming throughputs of the code storage type flash memories to be improved drastically.
Therefore, one of the objects of this invention is to provide a nonvolatile semiconductor memory device with multiple bit verifications during program verification to enable reduced programming time. Various other object of this invention will be described hereinafter.